home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / wsc4d21.zip / EASY_PGM.PAS < prev    next >
Pascal/Delphi Source File  |  1997-06-05  |  8KB  |  314 lines

  1. unit Easy_pgm;
  2.  
  3. interface
  4.  
  5. uses
  6.   DisplayUnit,
  7.   SysUtils, WinTypes, WinProcs,
  8.   Messages, Classes, Graphics, Controls,
  9.   Forms, Dialogs, Menus,
  10.   wsc, ExtCtrls, StdCtrls;
  11. type
  12.   TEasy = class(TForm)
  13.     MainMenu: TMainMenu;
  14.     menuLine: TMenuItem;
  15.     menuOnLine: TMenuItem;
  16.     menuOffline: TMenuItem;
  17.     menuExit: TMenuItem;
  18.     menuChange: TMenuItem;
  19.     menuPort: TMenuItem;
  20.     menuBaud: TMenuItem;
  21.     menuCOM1: TMenuItem;
  22.     menuCOM2: TMenuItem;
  23.     menuCOM3: TMenuItem;
  24.     menuCOM4: TMenuItem;
  25.     menu300: TMenuItem;
  26.     menu1200: TMenuItem;
  27.     menu2400: TMenuItem;
  28.     menu4800: TMenuItem;
  29.     menu9600: TMenuItem;
  30.     menu19200: TMenuItem;
  31.     menu38400: TMenuItem;
  32.     menu57600: TMenuItem;
  33.     Timer: TTimer;
  34.     Debug: TMenuItem;
  35.     Memo: TMemo;
  36.  
  37.     procedure FormCreate(Sender: TObject);
  38.     procedure menuOnLineClick(Sender: TObject);
  39.     procedure menuOfflineClick(Sender: TObject);
  40.     procedure menuCOM1Click(Sender: TObject);
  41.     procedure menuCOM2Click(Sender: TObject);
  42.     procedure menuCOM3Click(Sender: TObject);
  43.     procedure menuCOM4Click(Sender: TObject);
  44.     procedure menuExitClick(Sender: TObject);
  45.     procedure menu300Click(Sender: TObject);
  46.     procedure menu1200Click(Sender: TObject);
  47.     procedure menu2400Click(Sender: TObject);
  48.     procedure menu4800Click(Sender: TObject);
  49.     procedure menu9600Click(Sender: TObject);
  50.     procedure menu19200Click(Sender: TObject);
  51.     procedure menu38400Click(Sender: TObject);
  52.     procedure menu57600Click(Sender: TObject);
  53.     procedure TimerTimer(Sender: TObject);
  54.     procedure KeyPress(Sender: TObject; var Key: Char);
  55.     procedure DebugClick(Sender: TObject);
  56.   private
  57.     { Private declarations }
  58.     Port : Integer;
  59.     Baud : Integer;
  60.     Parity : Integer;
  61.     DataBits : Integer;
  62.     StopBits : Integer;
  63.   public
  64.     { Public declarations }
  65.  
  66.   end ;
  67.  
  68. var
  69.   Easy: TEasy;
  70.  
  71. implementation
  72.  
  73. {$R *.DFM}
  74.  
  75. procedure TEasy.FormCreate(Sender: TObject);
  76. var
  77.   I    : Integer;
  78.   Code : Integer;
  79. begin
  80.   (* initialize parameters *)
  81.   Port := COM1;
  82.   Baud := Baud19200;
  83.   Parity := NoParity;
  84.   DataBits := WordLength8;
  85.   StopBits := OneStopBit;
  86.   (* initialize menu settings *)
  87.   menuOffLine.Checked := true;
  88.   menuCOM1.Checked := true;
  89.   menu19200.Checked := true
  90. end;
  91.  
  92. procedure TEasy.menuOnLineClick(Sender: TObject);
  93. var
  94.   Code : Integer;
  95. begin
  96.   (* initialize WSC *)
  97.   Code := SioReset(Port,1024,512);
  98.   if Code < 0 then begin
  99.     DisplayString(Memo,Format('Error %d: ',[Code]));
  100.     DisplayError(Memo, Code);
  101.     exit
  102.   end;
  103.   (* update menu settings *)
  104.   Easy.Caption := 'EASY: COM' + Chr($31+Port) + ' Online';
  105.   menuOnLine.Checked := true;
  106.   menuOffLine.Checked := false;
  107.   menuChange.Enabled := false;
  108.   Code := SioBaud(Port,Baud);
  109.   Code := SioParms(Port, Parity, StopBits, DataBits);
  110.   Code := SioDTR(Port,'S');
  111.   Code := SioRTS(Port,'S')
  112. end;
  113.  
  114. procedure TEasy.menuOfflineClick(Sender: TObject);
  115. var
  116.   Code : Integer;
  117. begin
  118.   Easy.Caption := 'EASY: Offline';
  119.   DisplayString(Memo,'Shutting down COM port');
  120.   menuOnLine.Checked := false;
  121.   menuOffLine.Checked := true;
  122.   menuChange.Enabled := true;
  123.   Code := SioDone(Port)
  124. end;
  125.  
  126. procedure TEasy.menuCOM1Click(Sender: TObject);
  127. begin
  128.   menuCOM1.Checked := true;
  129.   menuCOM2.Checked := false;
  130.   menuCOM3.Checked := false;
  131.   menuCOM4.Checked := false;
  132.   Port := COM1
  133. end;
  134.  
  135. procedure TEasy.menuCOM2Click(Sender: TObject);
  136. begin
  137.   menuCOM1.Checked := false;
  138.   menuCOM2.Checked := true;
  139.   menuCOM3.Checked := false;
  140.   menuCOM4.Checked := false;
  141.   Port := COM2
  142. end;
  143.  
  144. procedure TEasy.menuCOM3Click(Sender: TObject);
  145. begin
  146.   menuCOM1.Checked := false;
  147.   menuCOM2.Checked := false;
  148.   menuCOM3.Checked := true;
  149.   menuCOM4.Checked := false;
  150.   Port := COM3
  151. end;
  152.  
  153. procedure TEasy.menuCOM4Click(Sender: TObject);
  154. begin
  155.   menuCOM1.Checked := false;
  156.   menuCOM2.Checked := false;
  157.   menuCOM3.Checked := false;
  158.   menuCOM4.Checked := true;
  159.   Port := COM4
  160. end;
  161.  
  162. procedure TEasy.menuExitClick(Sender: TObject);
  163. var
  164.   Code : Integer;
  165. begin
  166.   Code := SioDone(Port);
  167.   Application.Terminate;
  168. end;
  169.  
  170. procedure TEasy.menu300Click(Sender: TObject);
  171. begin
  172.   menu300.Checked := true;
  173.   menu1200.Checked := false;
  174.   menu2400.Checked := false;
  175.   menu4800.Checked := false;
  176.   menu9600.Checked := false;
  177.   menu19200.Checked := false;
  178.   menu38400.Checked := false;
  179.   menu57600.Checked := false;
  180.   Baud := Baud300
  181. end;
  182.  
  183. procedure TEasy.menu1200Click(Sender: TObject);
  184. begin
  185.   menu300.Checked := false;
  186.   menu1200.Checked := true;
  187.   menu2400.Checked := false;
  188.   menu4800.Checked := false;
  189.   menu9600.Checked := false;
  190.   menu19200.Checked := false;
  191.   menu38400.Checked := false;
  192.   menu57600.Checked := false;
  193.   Baud := Baud1200
  194. end;
  195.  
  196. procedure TEasy.menu2400Click(Sender: TObject);
  197. begin
  198.   menu300.Checked := false;
  199.   menu1200.Checked := false;
  200.   menu2400.Checked := true;
  201.   menu4800.Checked := false;
  202.   menu9600.Checked := false;
  203.   menu19200.Checked := false;
  204.   menu38400.Checked := false;
  205.   menu57600.Checked := false;
  206.   Baud := Baud2400
  207. end;
  208.  
  209. procedure TEasy.menu4800Click(Sender: TObject);
  210. begin
  211.   menu300.Checked := false;
  212.   menu1200.Checked := false;
  213.   menu2400.Checked := false;
  214.   menu4800.Checked := true;
  215.   menu9600.Checked := false;
  216.   menu19200.Checked := false;
  217.   menu38400.Checked := false;
  218.   menu57600.Checked := false;
  219.   Baud := Baud4800
  220. end;
  221.  
  222. procedure TEasy.menu9600Click(Sender: TObject);
  223. begin
  224.   menu300.Checked := false;
  225.   menu1200.Checked := false;
  226.   menu2400.Checked := false;
  227.   menu4800.Checked := false;
  228.   menu9600.Checked := true;
  229.   menu19200.Checked := false;
  230.   menu38400.Checked := false;
  231.   menu57600.Checked := false;
  232.   Baud := Baud9600
  233. end;
  234.  
  235. procedure TEasy.menu19200Click(Sender: TObject);
  236. begin
  237.   menu300.Checked := false;
  238.   menu1200.Checked := false;
  239.   menu2400.Checked := false;
  240.   menu4800.Checked := false;
  241.   menu9600.Checked := false;
  242.   menu19200.Checked := true;
  243.   menu38400.Checked := false;
  244.   menu57600.Checked := false;
  245.   Baud := Baud19200
  246. end;
  247.  
  248. procedure TEasy.menu38400Click(Sender: TObject);
  249. begin
  250.   menu300.Checked := false;
  251.   menu1200.Checked := false;
  252.   menu2400.Checked := false;
  253.   menu4800.Checked := false;
  254.   menu9600.Checked := false;
  255.   menu19200.Checked := false;
  256.   menu38400.Checked := true;
  257.   menu57600.Checked := false;
  258.   Baud := Baud38400
  259. end;
  260.  
  261. procedure TEasy.menu57600Click(Sender: TObject);
  262. begin
  263.   menu300.Checked := false;
  264.   menu1200.Checked := false;
  265.   menu2400.Checked := false;
  266.   menu4800.Checked := false;
  267.   menu9600.Checked := false;
  268.   menu19200.Checked := false;
  269.   menu38400.Checked := false;
  270.   menu57600.Checked := true;
  271.   Baud := Baud57600
  272. end;
  273.  
  274. procedure TEasy.TimerTimer(Sender: TObject);
  275. var
  276.   I, Code : Integer;
  277.   S : String;
  278.   CharCount : Integer;
  279. begin
  280.   S  := '';
  281.   CharCount := 0;
  282.   {Gather all incoming}
  283.   for I := 1 to 128 do begin
  284.     Code := SioGetc(Port);
  285.     if Code < 0 then break;
  286.     if Chr(Code) <> Chr(13) then begin
  287.       {got character (other than CR)}
  288.       Inc(CharCount);
  289.       if Chr(Code) = Chr(10) then break;
  290.       S := S + Chr(Code);
  291.     end
  292.   end; {for}
  293.   {display}
  294.   if CharCount > 0 then DisplayString(Memo,S);
  295.   if Chr(Code) = Chr(10) then DisplayChar(Memo,Chr(10))
  296. end;
  297.  
  298. procedure TEasy.KeyPress(Sender: TObject; var Key: Char);
  299. var
  300.   Code : Integer;
  301. begin
  302.   Code := SioPutc(Port,Key)
  303. end;
  304.  
  305. procedure TEasy.DebugClick(Sender: TObject);
  306. var
  307.   S : String;
  308. begin
  309.   Str(SioInfo('?'), S);
  310.   DisplayLine(Memo,S + ' seconds until expiration')
  311. end;
  312.  
  313. end.
  314.